// #include<cstdio>
// #include<cstdarg>


// void my_printf(const char* fmt, ...)
// {
//      va_list ap;
//      va_start(ap, fmt);
//      char buf[1024];
//      vsnprintf(buf,sizeof(buf), fmt, ap);
//      va_end(ap);
//      printf("123 456 %s", buf);
// }


// int main()
// {
//     my_printf("hello %s %d\n", "world", 123);

//     return 0;
// }


#include <functional>
#include <iostream>

// 一个简单的函数，用于演示 std::bind
void print_sum(int a, int b) {
    std::cout << (a + b) << std::endl;
}

int main() {
    // 使用 std::bind 创建一个新的可调用对象
    // 这个对象会将 print_sum 函数的第一个参数绑定为 10
    auto bound_func = std::bind(print_sum, 10, std::placeholders::_1);

    // 调用 bound_func，传入第二个参数（因为第一个参数已经被绑定为 10）
    bound_func(5); // 输出 15

    return 0;
}